home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 187_01 / itoa.c < prev    next >
Text File  |  1985-12-28  |  1KB  |  35 lines

  1. /*@*****************************************************/
  2. /*@                                                    */
  3. /*@ itoa - convert integer to ascii. Stolen from K & R */
  4. /*@        Very useful to prevent loading of printf    */
  5. /*@        and the 2-8K of follow-ons.                 */
  6. /*@                                                    */
  7. /*@   Usage:     itoa(num, buffer);                    */
  8. /*@       where num is an integer.                     */
  9. /*@             buffer is a char area large enough to  */
  10. /*@                to hold the resulting string.       */
  11. /*@                                                    */
  12. /*@   Returns a pointer to the buffer.  This allows    */
  13. /*@       nesting of puts(itoa(n, buffer)); variety.   */
  14. /*@                                                    */
  15. /*@*****************************************************/
  16.  
  17. char *itoa(n,s)        /* convert n to characters in s */
  18. char s[];
  19. int n;
  20. {
  21.     int i,sign;
  22.  
  23.     if ((sign = n) < 0)  /* record sign */
  24.         n = -n;         /* make positive */
  25.     i = 0;
  26.     do {                /* generate digits in reverse order */
  27.         s[i++] = n % 10 + '0';          /* get next digit */
  28.     } while ((n /= 10) > 0);        /* delete it */
  29.     if (sign < 0)
  30.         s[i++] = '-';
  31.     s[i] = '\0';
  32.     reverse(s);
  33.     return s;
  34. }
  35.